/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ipartek.formacion.gestformwww.controlador;
import com.ipartek.formacion.gestformwww.modelo.ModeloCliente;
import com.ipartek.formacion.gestformwww.modelo.ModeloCurso;
import com.ipartek.formacion.gestformwww.modelo.beans.Cliente;
import com.ipartek.formacion.gestformwww.modelo.beans.TipoCurso;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author David y Karmele
 */
public class CrearCursoAccion implements Accion {

    /**
     * Descripción: ejecuta la acción de creado del curso
     * @param servlet
     * @param request
     * @param response
     * @return devuelve el router que dirige a la página que corresponda (a Inicio o a Principal)
     */
    public AccionRouter ejecuta(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) {
        AccionRouter router = null;
        HttpSession sesion = request.getSession();

        ArrayList<Cliente> clientes = new ArrayList<Cliente>();
        ArrayList<TipoCurso> tiposcurso = new ArrayList<TipoCurso>();
        ArrayList<String> lugares = new ArrayList<String>();
        ModeloCurso modelo = (ModeloCurso) servlet.getServletContext().getAttribute("ModeloCurso");
        ModeloCliente mcliente = (ModeloCliente) servlet.getServletContext().getAttribute("ModeloCliente");

        if (sesion.getAttribute("usuario") != null) {
            router = new AccionRouter("principal");
            try {
                clientes = mcliente.listarClientes();
                tiposcurso = modelo.listarTipoCurso();
                lugares = modelo.listarLugares();
            } catch (GestorFormacionExcepcion ex) {
                Logger.getLogger(CrearCursoAccion.class.getName()).log(Level.SEVERE, null, ex);
                sesion.setAttribute("excepciones", ex.getMessage());
            }
            request.setAttribute("contenido", "crear-curso");
            request.setAttribute("listaclientes", clientes);
            request.setAttribute("listatipos", tiposcurso);
            request.setAttribute("listalugares", lugares);
        } else {
            router = new AccionRouter("inicio");
        }
        return router;
    }

    public void inicializa(AccionFactory factory) {
    }
}
